Computing systems are assembled using a collection of resources such as memory resources, storage resources, processing resources, and networking resources. In some examples, when faced with a particular task, an operating system assigns a combination of resources to the task, so that the task can be performed. If a required resource is unavailable, performance of the task may fail. To avoid this problem, some computer systems arrange resources into a resource pool. The resource pool provides a number of backup resources should an assigned resource fail. In some examples, two matching computer servers are provided in a resource pool to perform a particular task. A first computer server operates as the primary resource, and a second computer server acts as a backup resource if the first computer server fails. In many examples, increasing the number of alternative resources in a resource pool improves the reliability of the computing system. However, the degree to which reliability is improved by pooling resources may be uncertain. For example, three computer servers connected to the same power source may fail simultaneously if the power source fails. For this reason, selecting an appropriate combination of resources to allocate to a resource pool is an important problem.